第13章 リファクタリング:技術的負債の返済
13.2 技術的負債
手抜き、ハック、重複など開発期間が長ければ長いほど積み上がり技術的負債が積み上がっていく
時間と共にたまった負債を解消していく作業をアジャイル開発でリファクタリングと読んでる 13.3 リファクタリングで技術的負債を返却する
リファクタリングとは外部からみたソフトウェア全体の振る舞いを変えることなく、少しづつ継続的に設計を改善していく手順の総称 関数でくくって可読性をあげたり、変数名を変更してわかりやすくすることもリファクタリングの一環
ソフトウェアを開発するのもプログラマであり、変更するのもまたプログラマであることをイメージすることがアジャイル開発では大事
リファクタリングを続けても開発速度は低下せずに、むしろ向上していく。リファクタリングを続けることできれいな設計が維持ができて、機能追加しやすいコードになっていく
リファクタリングはイテレーションの終わりにすることではない。継続的にリファクタリングをすること
プロジェクトマネージャーはリファクタリングの重要性を理解しておかないといけない。緊急のバグ修正や調査などが発生した時に、継続的に行なっていたリファクタリングを役に立つことがある
大掛かりなリファクタリング業務になる場合は、ストーリーとして扱い見積り・優先順位をきめて対応すること
大掛かりなリファクタリングをしてもいいが、その恩恵を受けれるかがわからない場合は、以下のことを考慮するといい
プロジェクトの終了は近いか
プロジェクト終わりにリファクタリングを実施してもその恩恵を受けれるタイミングは少ない。この場合は、避けたほうがいい
少しづつやれないか
少しづつやることは顧客にも説明しやすい
新機能開発も並行して進めることができる
大事なことは、「完了させなければならないことはなにか」。もしリファクタリングすることでメリットがあると考えるのであればやればいい